/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package aptech.lab.servlet;

import java.io.IOException;
import java.io.PrintWriter;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import aptech.lab.dao.DbUtilMysql;
import aptech.lab.dao.model.Department;

/**
 *
 * @author vulh
 */
public class GetDepartmentData extends HttpServlet {

    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        response.setCharacterEncoding("UTF-8");
        PrintWriter out = response.getWriter();
        int page = 1;
        int rows = 10;
        try {
            page = Integer.parseInt(request.getParameter("page"));
        } catch(Exception e) {}
        try {
            rows = Integer.parseInt(request.getParameter("rows"));
        } catch(Exception e) {}
    
        try {
        	DbUtilMysql dbUtil = new DbUtilMysql();
        	int start = (page-1)*rows;
        	List<Department> list = dbUtil.getDepartments(start, rows);
        	int count = dbUtil.countDepartments();
           out.write("{\n");
           out.write("\"total\":\"" + count + "\",");
           out.write("\"rows\":[");
           int iSTT = 1;
           for (Department dep : list) {        	   
        	   if (iSTT < list.size()) {        		   
        		   out.write("{\"departmentId\":\"" + dep.getDepartmentId() + "\",\"name\":\"" + dep.getName() + "\"},\n");
        	   } else {
        		   out.write("{\"departmentId\":\"" + dep.getDepartmentId() + "\",\"name\":\"" + dep.getName() + "\"}\n");
        	   }
        	   iSTT++;
           }
//           out.write("{\"departmentId\":\"1\",\"name\":\"SD\"},\n");
//           out.write("{\"departmentId\":\"2\",\"name\":\"HR\"},\n");
//           out.write("{\"departmentId\":\"3\",\"name\":\"SD\"},\n");
//           out.write("{\"departmentId\":\"4\",\"name\":\"HR\"},\n");
//           out.write("{\"departmentId\":\"5\",\"name\":\"SD\"},\n");
//           out.write("{\"departmentId\":\"6\",\"name\":\"HR\"},\n");
//           out.write("{\"departmentId\":\"7\",\"name\":\"SD\"},\n");
//           out.write("{\"departmentId\":\"8\",\"name\":\"HR\"},\n");
//           out.write("{\"departmentId\":\"9\",\"name\":\"SD\"},\n");
//           out.write("{\"departmentId\":\"10\",\"name\":\"HR\"}\n");           
           out.write("]\n");
           out.write("}\n");
        } finally {            
            out.close();
        }
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
